#ifndef __IWD
#define __IWD
#include <list>
#include "Cluster.h"
#include "Service.h"
#include <map>

class IWD
{
public:
	static const double InitVel ;
	static double const Av, Bv, Cv;//velocity updating parameters
	static const double As , Bs , Cs ;//soil updating parameters
 	double soil;
	double velocity;
	std::map<Cluster *, Service *> vis;
	IWD(Cluster *, int Nc) ;
	double moveTo(Service *, double pathSoil, double HUDresult);
private:
	void updateVelocity(double pathSoil);
	double updateSoil(double time);//returns delta soil
};

#endif 